package com.zara.store.web.struts;

import java.io.IOException;
import java.math.BigDecimal;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.zara.store.client.clientmodel.Basket;
import com.zara.store.client.clientmodel.BasketProduct;
import com.zara.store.client.clientmodel.RetailBasket;

public class BasketAddAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

		HttpSession session = request.getSession();
		BasketProduct product = (BasketProduct) session.getAttribute(BasketProduct.class.getName());
		
		if(product == null) {
			return (mapping.findForward("failure"));			
		}

		Basket basket = (Basket) session.getAttribute(Basket.class.getName());
		if(basket == null) {
			basket = new RetailBasket();
			session.setAttribute(Basket.class.getName(), basket);
		}
		if(product.getProductVO().getStock().compareTo(BigDecimal.ZERO) > 0) {
			basket.addProduct(product);
		}

		return (mapping.findForward("success"));
	}

}